/**
 * @author 侯非
 * @date 2009年3月7日
 * @class UserInfoGridPanel
 * @extends Ext.grid.GridPanel
 * @description 用户信息列表表格
 */
UserInfoGridPanel = Ext.extend(Ext.grid.GridPanel, {
	myid : "my_id",
	addWin : null,
	editWin : null,
	// 构造方法
	constructor : function(_cfg) {
		if (_cfg == null) {
			_cfg = {};
		}
		Ext.apply(this, _cfg);
		// 将AddUserInfoWindow的引用赋值给当前属性addWin
		this.addWin = new AddUserInfoWindow();
		this.editWin = new EditUserInfoWindow();
		// 数据存储器
		this["store"] = new Ext.data.JsonStore({
					url : "userInfo.do?operator=showUserInfoByPage",
					totalProperty : "totalCount",
					root : "rows",
					fields : ["userId", "userMemo", "userCreateDate",
							"userTrueName", "userAccount", "userPass",
							"userrole.urName", "userrole.urId"]
				});
		// 将父类的构造拷贝过来
		UserInfoGridPanel.superclass.constructor.call(this, {
			id : this.myid,
			title : "用户信息列表",
			border : false,
			iconCls : "houfei-treeNodeLeafIcon",
			stripeRows : true, // 交替行效果
			viewConfig : {
				autoFill : true,
				forceFit : true
			},
			// 列模板
			colModel : new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(), {
						header : "编号",
						sortable: true,  //允许排序
						dataIndex : "userId"
					}, {
						header : "账号",
						sortable: true,  //允许排序
						dataIndex : "userAccount"
					}, {
						header : "密码",
						sortable: true,  //允许排序
						dataIndex : "userPass"
					}, {
						header : "真实姓名",
						sortable: true,  //允许排序
						dataIndex : "userTrueName"
					}, {
						header : "用户角色",
						sortable: true,  //允许排序
						dataIndex : "userrole.urName"
					}, {
						header : "备注",
						sortable: true,  //允许排序
						dataIndex : "userMemo"
					}]),
			// 填充加载时间
			loadMask : {
				msg : "正在加载数据,请稍候......"
			},
			// 行选择模式
			selModel : new Ext.grid.RowSelectionModel({
				singleSelect : true
					// 单行选择模式
				}),
			tbar : [{ // 顶部工具条
				text : "注册",
				tooltip : "注册一个新的用户", // 提示
				iconCls : "houfei-addicon", // 图标样式
				handler : this.onAddUserInfo, // 事件
				scope : this
					// 作用域
			}, "-", {
				text : "修改",
				tooltip : "修该用户的信息", // 提示
				iconCls : "houfei-editicon", // 图标样式
				handler : this.onEditUserInfo, // 事件
				scope : this
			}, "-", {
				text : "刷新",
				iconCls : "houfei-refreshIcon",
				handler : this.onRefresh, // 刷新事件
				tooltip : "刷新用户信息",
				scope : this
			}],
			bbar : new Ext.PagingToolbar({
				store : this["store"], // 数据存储器
				pageSize : 17, // 页大小
				displayMsg : "共<font color=\"green\"> {2} </font>条记录,当前页记录索引<font color=\"green\"> {0} - {1}</font>&nbsp;&nbsp;&nbsp;",
				displayInfo : true
			})
		});

		this.getStore().load({
					params : {
						// 索引
						start : 0,
						// 页大小
						limit : 17
					}
				});

	},

	/**
	 * 注册按钮单击事件
	 */
	onAddUserInfo : function() {
		this.addWin.form.getForm().reset();
		this.addWin.show();
	},

	/**
	 * 表格数据刷新
	 */
	onRefresh : function() {
		this.getStore().reload();
	},

	/**
	 * 修改用户信息
	 */
	onEditUserInfo : function() {
		// 获取行选择模板
		var _sm = this.getSelectionModel();
		// 获取当前选择的行数
		var _count = _sm.getCount();
		// 如果用户选择了一行记录
		if (_count > 0) {
			// 获取用户选择的当前行的记录
			var _crr = _sm.getSelected();
			// 创建一个new record
			var _nr = new Ext.data.Record({
						"userInfo.userAccount" : _crr.get("userAccount"),
						"userPass1" : _crr.get("userPass"),
						"userInfo.userPass" : _crr.get("userPass"),
						"userInfo.userTrueName" : _crr.get("userTrueName"),
						"userInfo.userMemo" : _crr.get("userMemo")
					});
			// 显示窗体
			this.editWin.show();
			// 加载数据
			this.editWin.form.getForm().loadRecord(_nr);
			// 将pkid传递给editWin对象的editPkId属性
			this.editWin.editPkId = _crr.get("userId");
		} else {
			Ext.Msg.show({
						title : "系统提示",
						msg : "请您选择一条您要修改的信息",
						buttons : Ext.Msg.OK,
						icon : Ext.Msg.INFO
					});
		}
	}
});